/**
 * Copyright (C) 2022 EEMBC
 * Copyright (C) 2022 Arm Limited
 *
 * All EEMBC Benchmark Software are products of EEMBC and are provided under the
 * terms of the EEMBC Benchmark License Agreements. The EEMBC Benchmark Software
 * are proprietary intellectual properties of EEMBC and its Members and is
 * protected under all applicable laws, including all applicable copyright laws.
 *
 * If you received this EEMBC Benchmark Software without having a currently
 * effective EEMBC Benchmark License Agreement, you must discontinue use.
 */

#ifndef __EE_NN_H
#define __EE_NN_H

#define NUM_FRAMES 49

#define AVERAGE_POOL_9_OUT_CH                 64
#define AVERAGE_POOL_9_IN_CH                  64
#define AVERAGE_POOL_9_INPUT_W                5
#define AVERAGE_POOL_9_INPUT_H                25
#define AVERAGE_POOL_9_DST_SIZE               64
#define AVERAGE_POOL_9_FILTER_X               5
#define AVERAGE_POOL_9_FILTER_Y               25
#define AVERAGE_POOL_9_FILTER_W               5
#define AVERAGE_POOL_9_FILTER_H               25
#define AVERAGE_POOL_9_STRIDE_X               1
#define AVERAGE_POOL_9_STRIDE_Y               1
#define AVERAGE_POOL_9_STRIDE_W               1
#define AVERAGE_POOL_9_STRIDE_H               1
#define AVERAGE_POOL_9_PAD_X                  0
#define AVERAGE_POOL_9_PAD_Y                  0
#define AVERAGE_POOL_9_PAD_W                  0
#define AVERAGE_POOL_9_PAD_H                  0
#define AVERAGE_POOL_9_OUTPUT_W               1
#define AVERAGE_POOL_9_OUTPUT_H               1
#define AVERAGE_POOL_9_INPUT_OFFSET           128
#define AVERAGE_POOL_9_INPUT_SIZE             8000
#define AVERAGE_POOL_9_OUT_ACTIVATION_MIN     -128
#define AVERAGE_POOL_9_OUT_ACTIVATION_MAX     127
#define AVERAGE_POOL_9_INPUT_BATCHES          1
#define AVERAGE_POOL_9_OUTPUT_OFFSET          -128
#define AVERAGE_POOL_9_DILATION_X             1
#define AVERAGE_POOL_9_DILATION_Y             1
#define AVERAGE_POOL_9_DILATION_W             1
#define AVERAGE_POOL_9_DILATION_H             1
#define CONV_0_OUT_CH                         64
#define CONV_0_IN_CH                          1
#define CONV_0_INPUT_W                        10
#define CONV_0_INPUT_H                        49
#define CONV_0_DST_SIZE                       8000
#define CONV_0_FILTER_X                       4
#define CONV_0_FILTER_Y                       10
#define CONV_0_FILTER_W                       4
#define CONV_0_FILTER_H                       10
#define CONV_0_STRIDE_X                       2
#define CONV_0_STRIDE_Y                       2
#define CONV_0_STRIDE_W                       2
#define CONV_0_STRIDE_H                       2
#define CONV_0_PAD_X                          1
#define CONV_0_PAD_Y                          4
#define CONV_0_PAD_W                          1
#define CONV_0_PAD_H                          4
#define CONV_0_OUTPUT_W                       5
#define CONV_0_OUTPUT_H                       25
#define CONV_0_INPUT_OFFSET                   -100
#define CONV_0_INPUT_SIZE                     490
#define CONV_0_OUT_ACTIVATION_MIN             -128
#define CONV_0_OUT_ACTIVATION_MAX             127
#define CONV_0_INPUT_BATCHES                  1
#define CONV_0_OUTPUT_OFFSET                  -128
#define CONV_0_DILATION_X                     1
#define CONV_0_DILATION_Y                     1
#define CONV_0_DILATION_W                     1
#define CONV_0_DILATION_H                     1
#define CONV_2_OUT_CH                         64
#define CONV_2_IN_CH                          64
#define CONV_2_INPUT_W                        5
#define CONV_2_INPUT_H                        25
#define CONV_2_DST_SIZE                       8000
#define CONV_2_FILTER_X                       1
#define CONV_2_FILTER_Y                       1
#define CONV_2_FILTER_W                       1
#define CONV_2_FILTER_H                       1
#define CONV_2_STRIDE_X                       1
#define CONV_2_STRIDE_Y                       1
#define CONV_2_STRIDE_W                       1
#define CONV_2_STRIDE_H                       1
#define CONV_2_PAD_X                          0
#define CONV_2_PAD_Y                          0
#define CONV_2_PAD_W                          0
#define CONV_2_PAD_H                          0
#define CONV_2_OUTPUT_W                       5
#define CONV_2_OUTPUT_H                       25
#define CONV_2_INPUT_OFFSET                   128
#define CONV_2_INPUT_SIZE                     8000
#define CONV_2_OUT_ACTIVATION_MIN             -128
#define CONV_2_OUT_ACTIVATION_MAX             127
#define CONV_2_INPUT_BATCHES                  1
#define CONV_2_OUTPUT_OFFSET                  -128
#define CONV_2_DILATION_X                     1
#define CONV_2_DILATION_Y                     1
#define CONV_2_DILATION_W                     1
#define CONV_2_DILATION_H                     1
#define CONV_4_OUT_CH                         64
#define CONV_4_IN_CH                          64
#define CONV_4_INPUT_W                        5
#define CONV_4_INPUT_H                        25
#define CONV_4_DST_SIZE                       8000
#define CONV_4_FILTER_X                       1
#define CONV_4_FILTER_Y                       1
#define CONV_4_FILTER_W                       1
#define CONV_4_FILTER_H                       1
#define CONV_4_STRIDE_X                       1
#define CONV_4_STRIDE_Y                       1
#define CONV_4_STRIDE_W                       1
#define CONV_4_STRIDE_H                       1
#define CONV_4_PAD_X                          0
#define CONV_4_PAD_Y                          0
#define CONV_4_PAD_W                          0
#define CONV_4_PAD_H                          0
#define CONV_4_OUTPUT_W                       5
#define CONV_4_OUTPUT_H                       25
#define CONV_4_INPUT_OFFSET                   128
#define CONV_4_INPUT_SIZE                     8000
#define CONV_4_OUT_ACTIVATION_MIN             -128
#define CONV_4_OUT_ACTIVATION_MAX             127
#define CONV_4_INPUT_BATCHES                  1
#define CONV_4_OUTPUT_OFFSET                  -128
#define CONV_4_DILATION_X                     1
#define CONV_4_DILATION_Y                     1
#define CONV_4_DILATION_W                     1
#define CONV_4_DILATION_H                     1
#define CONV_6_OUT_CH                         64
#define CONV_6_IN_CH                          64
#define CONV_6_INPUT_W                        5
#define CONV_6_INPUT_H                        25
#define CONV_6_DST_SIZE                       8000
#define CONV_6_FILTER_X                       1
#define CONV_6_FILTER_Y                       1
#define CONV_6_FILTER_W                       1
#define CONV_6_FILTER_H                       1
#define CONV_6_STRIDE_X                       1
#define CONV_6_STRIDE_Y                       1
#define CONV_6_STRIDE_W                       1
#define CONV_6_STRIDE_H                       1
#define CONV_6_PAD_X                          0
#define CONV_6_PAD_Y                          0
#define CONV_6_PAD_W                          0
#define CONV_6_PAD_H                          0
#define CONV_6_OUTPUT_W                       5
#define CONV_6_OUTPUT_H                       25
#define CONV_6_INPUT_OFFSET                   128
#define CONV_6_INPUT_SIZE                     8000
#define CONV_6_OUT_ACTIVATION_MIN             -128
#define CONV_6_OUT_ACTIVATION_MAX             127
#define CONV_6_INPUT_BATCHES                  1
#define CONV_6_OUTPUT_OFFSET                  -128
#define CONV_6_DILATION_X                     1
#define CONV_6_DILATION_Y                     1
#define CONV_6_DILATION_W                     1
#define CONV_6_DILATION_H                     1
#define CONV_8_OUT_CH                         64
#define CONV_8_IN_CH                          64
#define CONV_8_INPUT_W                        5
#define CONV_8_INPUT_H                        25
#define CONV_8_DST_SIZE                       8000
#define CONV_8_FILTER_X                       1
#define CONV_8_FILTER_Y                       1
#define CONV_8_FILTER_W                       1
#define CONV_8_FILTER_H                       1
#define CONV_8_STRIDE_X                       1
#define CONV_8_STRIDE_Y                       1
#define CONV_8_STRIDE_W                       1
#define CONV_8_STRIDE_H                       1
#define CONV_8_PAD_X                          0
#define CONV_8_PAD_Y                          0
#define CONV_8_PAD_W                          0
#define CONV_8_PAD_H                          0
#define CONV_8_OUTPUT_W                       5
#define CONV_8_OUTPUT_H                       25
#define CONV_8_INPUT_OFFSET                   128
#define CONV_8_INPUT_SIZE                     8000
#define CONV_8_OUT_ACTIVATION_MIN             -128
#define CONV_8_OUT_ACTIVATION_MAX             127
#define CONV_8_INPUT_BATCHES                  1
#define CONV_8_OUTPUT_OFFSET                  -128
#define CONV_8_DILATION_X                     1
#define CONV_8_DILATION_Y                     1
#define CONV_8_DILATION_W                     1
#define CONV_8_DILATION_H                     1
#define DW_CONV_1_OUT_CH                      64
#define DW_CONV_1_IN_CH                       64
#define DW_CONV_1_INPUT_W                     5
#define DW_CONV_1_INPUT_H                     25
#define DW_CONV_1_DST_SIZE                    8000
#define DW_CONV_1_FILTER_X                    3
#define DW_CONV_1_FILTER_Y                    3
#define DW_CONV_1_FILTER_W                    3
#define DW_CONV_1_FILTER_H                    3
#define DW_CONV_1_STRIDE_X                    1
#define DW_CONV_1_STRIDE_Y                    1
#define DW_CONV_1_STRIDE_W                    1
#define DW_CONV_1_STRIDE_H                    1
#define DW_CONV_1_PAD_X                       1
#define DW_CONV_1_PAD_Y                       1
#define DW_CONV_1_PAD_W                       1
#define DW_CONV_1_PAD_H                       1
#define DW_CONV_1_OUTPUT_W                    5
#define DW_CONV_1_OUTPUT_H                    25
#define DW_CONV_1_INPUT_OFFSET                128
#define DW_CONV_1_INPUT_SIZE                  8000
#define DW_CONV_1_OUT_ACTIVATION_MIN          -128
#define DW_CONV_1_OUT_ACTIVATION_MAX          127
#define DW_CONV_1_INPUT_BATCHES               1
#define DW_CONV_1_OUTPUT_OFFSET               -128
#define DW_CONV_1_DILATION_X                  1
#define DW_CONV_1_DILATION_Y                  1
#define DW_CONV_1_DILATION_W                  1
#define DW_CONV_1_DILATION_H                  1
#define DW_CONV_1_ACCUMULATION_DEPTH          8000
#define DW_CONV_3_OUT_CH                      64
#define DW_CONV_3_IN_CH                       64
#define DW_CONV_3_INPUT_W                     5
#define DW_CONV_3_INPUT_H                     25
#define DW_CONV_3_DST_SIZE                    8000
#define DW_CONV_3_FILTER_X                    3
#define DW_CONV_3_FILTER_Y                    3
#define DW_CONV_3_FILTER_W                    3
#define DW_CONV_3_FILTER_H                    3
#define DW_CONV_3_STRIDE_X                    1
#define DW_CONV_3_STRIDE_Y                    1
#define DW_CONV_3_STRIDE_W                    1
#define DW_CONV_3_STRIDE_H                    1
#define DW_CONV_3_PAD_X                       1
#define DW_CONV_3_PAD_Y                       1
#define DW_CONV_3_PAD_W                       1
#define DW_CONV_3_PAD_H                       1
#define DW_CONV_3_OUTPUT_W                    5
#define DW_CONV_3_OUTPUT_H                    25
#define DW_CONV_3_INPUT_OFFSET                128
#define DW_CONV_3_INPUT_SIZE                  8000
#define DW_CONV_3_OUT_ACTIVATION_MIN          -128
#define DW_CONV_3_OUT_ACTIVATION_MAX          127
#define DW_CONV_3_INPUT_BATCHES               1
#define DW_CONV_3_OUTPUT_OFFSET               -128
#define DW_CONV_3_DILATION_X                  1
#define DW_CONV_3_DILATION_Y                  1
#define DW_CONV_3_DILATION_W                  1
#define DW_CONV_3_DILATION_H                  1
#define DW_CONV_3_ACCUMULATION_DEPTH          8000
#define DW_CONV_5_OUT_CH                      64
#define DW_CONV_5_IN_CH                       64
#define DW_CONV_5_INPUT_W                     5
#define DW_CONV_5_INPUT_H                     25
#define DW_CONV_5_DST_SIZE                    8000
#define DW_CONV_5_FILTER_X                    3
#define DW_CONV_5_FILTER_Y                    3
#define DW_CONV_5_FILTER_W                    3
#define DW_CONV_5_FILTER_H                    3
#define DW_CONV_5_STRIDE_X                    1
#define DW_CONV_5_STRIDE_Y                    1
#define DW_CONV_5_STRIDE_W                    1
#define DW_CONV_5_STRIDE_H                    1
#define DW_CONV_5_PAD_X                       1
#define DW_CONV_5_PAD_Y                       1
#define DW_CONV_5_PAD_W                       1
#define DW_CONV_5_PAD_H                       1
#define DW_CONV_5_OUTPUT_W                    5
#define DW_CONV_5_OUTPUT_H                    25
#define DW_CONV_5_INPUT_OFFSET                128
#define DW_CONV_5_INPUT_SIZE                  8000
#define DW_CONV_5_OUT_ACTIVATION_MIN          -128
#define DW_CONV_5_OUT_ACTIVATION_MAX          127
#define DW_CONV_5_INPUT_BATCHES               1
#define DW_CONV_5_OUTPUT_OFFSET               -128
#define DW_CONV_5_DILATION_X                  1
#define DW_CONV_5_DILATION_Y                  1
#define DW_CONV_5_DILATION_W                  1
#define DW_CONV_5_DILATION_H                  1
#define DW_CONV_5_ACCUMULATION_DEPTH          8000
#define DW_CONV_7_OUT_CH                      64
#define DW_CONV_7_IN_CH                       64
#define DW_CONV_7_INPUT_W                     5
#define DW_CONV_7_INPUT_H                     25
#define DW_CONV_7_DST_SIZE                    8000
#define DW_CONV_7_FILTER_X                    3
#define DW_CONV_7_FILTER_Y                    3
#define DW_CONV_7_FILTER_W                    3
#define DW_CONV_7_FILTER_H                    3
#define DW_CONV_7_STRIDE_X                    1
#define DW_CONV_7_STRIDE_Y                    1
#define DW_CONV_7_STRIDE_W                    1
#define DW_CONV_7_STRIDE_H                    1
#define DW_CONV_7_PAD_X                       1
#define DW_CONV_7_PAD_Y                       1
#define DW_CONV_7_PAD_W                       1
#define DW_CONV_7_PAD_H                       1
#define DW_CONV_7_OUTPUT_W                    5
#define DW_CONV_7_OUTPUT_H                    25
#define DW_CONV_7_INPUT_OFFSET                128
#define DW_CONV_7_INPUT_SIZE                  8000
#define DW_CONV_7_OUT_ACTIVATION_MIN          -128
#define DW_CONV_7_OUT_ACTIVATION_MAX          127
#define DW_CONV_7_INPUT_BATCHES               1
#define DW_CONV_7_OUTPUT_OFFSET               -128
#define DW_CONV_7_DILATION_X                  1
#define DW_CONV_7_DILATION_Y                  1
#define DW_CONV_7_DILATION_W                  1
#define DW_CONV_7_DILATION_H                  1
#define DW_CONV_7_ACCUMULATION_DEPTH          8000
#define FULLY_CONNECTED_11_OUT_CH             64
#define FULLY_CONNECTED_11_IN_CH              12
#define FULLY_CONNECTED_11_INPUT_W            1
#define FULLY_CONNECTED_11_INPUT_H            1
#define FULLY_CONNECTED_11_DST_SIZE           768
#define FULLY_CONNECTED_11_FILTER_X           5
#define FULLY_CONNECTED_11_FILTER_Y           25
#define FULLY_CONNECTED_11_FILTER_W           5
#define FULLY_CONNECTED_11_FILTER_H           25
#define FULLY_CONNECTED_11_STRIDE_X           1
#define FULLY_CONNECTED_11_STRIDE_Y           1
#define FULLY_CONNECTED_11_STRIDE_W           1
#define FULLY_CONNECTED_11_STRIDE_H           1
#define FULLY_CONNECTED_11_PAD_X              0
#define FULLY_CONNECTED_11_PAD_Y              0
#define FULLY_CONNECTED_11_PAD_W              0
#define FULLY_CONNECTED_11_PAD_H              0
#define FULLY_CONNECTED_11_OUTPUT_W           12
#define FULLY_CONNECTED_11_OUTPUT_H           1
#define FULLY_CONNECTED_11_INPUT_OFFSET       128
#define FULLY_CONNECTED_11_INPUT_SIZE         12
#define FULLY_CONNECTED_11_OUT_ACTIVATION_MIN -128
#define FULLY_CONNECTED_11_OUT_ACTIVATION_MAX 127
#define FULLY_CONNECTED_11_INPUT_BATCHES      1
#define FULLY_CONNECTED_11_OUTPUT_OFFSET      57
#define FULLY_CONNECTED_11_DILATION_X         1
#define FULLY_CONNECTED_11_DILATION_Y         1
#define FULLY_CONNECTED_11_DILATION_W         1
#define FULLY_CONNECTED_11_DILATION_H         1
#define FULLY_CONNECTED_11_OUTPUT_MULTIPLIER  1551926371
#define FULLY_CONNECTED_11_OUTPUT_SHIFT       -8
#define SOFTMAX_12_OUT_CH                     64
#define SOFTMAX_12_IN_CH                      12
#define SOFTMAX_12_INPUT_W                    12
#define SOFTMAX_12_INPUT_H                    1
#define SOFTMAX_12_DST_SIZE                   768
#define SOFTMAX_12_NUM_ROWS                   1
#define SOFTMAX_12_ROW_SIZE                   12
#define SOFTMAX_12_MULT                       1881344896
#define SOFTMAX_12_SHIFT                      24
#define SOFTMAX_12_DIFF_MIN                   -124

#endif
